#pragma once
//封装等待队列
#include <iostream>
#include <pthread.h>
#include "mutex.hpp"
class Cond
{
    public:
    Cond()
    {
        pthread_cond_init(&_cond,nullptr);
    }
    void wait(Mutex* mutex)
    {
        pthread_cond_wait(&_cond,mutex->Get());

    }
    void NotifyOne()
    {
        pthread_cond_signal(&_cond);
    }
    void NotifyAll()
    {
        pthread_cond_broadcast(&_cond);
    }

    ~Cond()
    {
        pthread_cond_destroy(&_cond);
    }
    private:
    pthread_cond_t _cond;
};

